home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / util / TaskQueue.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  1.5 KB  |  103 lines

  1. package java.util;
  2.  
  3. class TaskQueue {
  4.    private TimerTask[] queue = new TimerTask[128];
  5.    private int size = 0;
  6.  
  7.    int size() {
  8.       return this.size;
  9.    }
  10.  
  11.    void add(TimerTask var1) {
  12.       if (this.size + 1 == this.queue.length) {
  13.          this.queue = (TimerTask[])Arrays.copyOf(this.queue, 2 * this.queue.length);
  14.       }
  15.  
  16.       this.queue[++this.size] = var1;
  17.       this.fixUp(this.size);
  18.    }
  19.  
  20.    TimerTask getMin() {
  21.       return this.queue[1];
  22.    }
  23.  
  24.    TimerTask get(int var1) {
  25.       return this.queue[var1];
  26.    }
  27.  
  28.    void removeMin() {
  29.       this.queue[1] = this.queue[this.size];
  30.       this.queue[this.size--] = null;
  31.       this.fixDown(1);
  32.    }
  33.  
  34.    void quickRemove(int var1) {
  35.       assert var1 <= this.size;
  36.  
  37.       this.queue[var1] = this.queue[this.size];
  38.       this.queue[this.size--] = null;
  39.    }
  40.  
  41.    void rescheduleMin(long var1) {
  42.       this.queue[1].nextExecutionTime = var1;
  43.       this.fixDown(1);
  44.    }
  45.  
  46.    boolean isEmpty() {
  47.       return this.size == 0;
  48.    }
  49.  
  50.    void clear() {
  51.       for(int var1 = 1; var1 <= this.size; ++var1) {
  52.          this.queue[var1] = null;
  53.       }
  54.  
  55.       this.size = 0;
  56.    }
  57.  
  58.    private void fixUp(int var1) {
  59.       while(true) {
  60.          if (var1 > 1) {
  61.             int var2 = var1 >> 1;
  62.             if (this.queue[var2].nextExecutionTime > this.queue[var1].nextExecutionTime) {
  63.                TimerTask var3 = this.queue[var2];
  64.                this.queue[var2] = this.queue[var1];
  65.                this.queue[var1] = var3;
  66.                var1 = var2;
  67.                continue;
  68.             }
  69.          }
  70.  
  71.          return;
  72.       }
  73.    }
  74.  
  75.    private void fixDown(int var1) {
  76.       while(true) {
  77.          int var2;
  78.          if ((var2 = var1 << 1) <= this.size && var2 > 0) {
  79.             if (var2 < this.size && this.queue[var2].nextExecutionTime > this.queue[var2 + 1].nextExecutionTime) {
  80.                ++var2;
  81.             }
  82.  
  83.             if (this.queue[var1].nextExecutionTime > this.queue[var2].nextExecutionTime) {
  84.                TimerTask var3 = this.queue[var2];
  85.                this.queue[var2] = this.queue[var1];
  86.                this.queue[var1] = var3;
  87.                var1 = var2;
  88.                continue;
  89.             }
  90.          }
  91.  
  92.          return;
  93.       }
  94.    }
  95.  
  96.    void heapify() {
  97.       for(int var1 = this.size / 2; var1 >= 1; --var1) {
  98.          this.fixDown(var1);
  99.       }
  100.  
  101.    }
  102. }
  103.